if 判断语句

在Java中,你可以使用if语句来进行条件判断。if语句允许你根据某个条件的真假来执行不同的代码块。

下面是一个简单的if语句示例:

int x = 5;

if (x > 0) {
    System.out.println("x 是正数");
}

在上面的示例中,我们首先定义了一个整数变量x,然后使用if语句检查x是否大于0。如果条件成立(即x大于0),则会执行if代码块中的语句,打印出"x 是正数"。

除了基本的if语句外,还有一些相关的语句形式可以扩展条件逻辑:

int x = 5;

if (x > 0) {
    System.out.println("x 是正数");
} else {
    System.out.println("x 不是正数");
}
int x = 5;

if (x > 0) {
    System.out.println("x 是正数");
} else if (x < 0) {
    System.out.println("x 是负数");
} else {
    System.out.println("x 是零");
}
int x = 5;
int y = 10;

if (x > 0) {
    if (y > 0) {
        System.out.println("x 和 y 都是正数");
    } else {
        System.out.println("x 是正数,y 不是正数");
    }
} else {
    System.out.println("x 不是正数");
}

判断引用类型相等

在Java中,判断引用类型相等有两种情况需要考虑:引用相等和对象内容相等。

  1. 引用相等:使用双等号运算符(= =)可以判断两个引用是否指向同一个对象。如果两个引用指向的是同一个对象,则它们是引用相等的。

例如:

String str1 = "Hello";
String str2 = "Hello";
String str3 = new String("Hello");

System.out.println(str1 == str2); // 输出 true,因为str1和str2都指向字符串常量池中的同一个对象
System.out.println(str1 == str3); // 输出 false,因为str1和str3指向不同的对象
  1. 对象内容相等:对于引用类型,我们通常需要比较它们的内容是否相等,而不仅仅是比较引用是否相等。这时候需要使用equals()方法进行比较。

例如:

String str1 = "Hello";
String str2 = "Hello";
String str3 = new String("Hello");

System.out.println(str1.equals(str2)); // 输出 true,因为str1和str2的内容相等
System.out.println(str1.equals(str3)); // 输出 true,因为str1和str3的内容相等

需要注意的是,在使用equals()方法进行比较之前,要确保对象不为null,否则会抛出空指针异常。可以使用Objects.equals(obj1, obj2)方法来避免这个问题,该方法会先检查是否为null,再调用equals()方法进行比较。

另外,对于自定义的类,如果想要实现对象内容相等的判断,需要重写该类的equals()方法,并根据对象的属性来进行比较。